﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Demo04
{
    class Program
    {
        /*静态字段存储的值在所有实例化之间是共享的。

    作业：
    现在开班了，班里老师只有一个，叫唐僧。班里的五个人都知道老师叫唐僧
        (也就是说老师这个字段是共享的)。但是某一天唐僧要去女儿国走丈母娘家了，
        课不能停啊。所以就请嫦娥姐姐过来带一段课。

    现在5个学生都知道老师换成嫦娥姐姐了，都很激动哈。但是她们是怎么都知道换老师的呢？
    还是这个静态字段的功劳，将老师姓名声明为静态字段，这个字段是共享的。
        所以该类的属性都能知道。

    请用代码写出上面的剧情。

    提示：
    定义一个学生类（有哪些字段属性？修饰符是什么？自己考量定义，至少学生姓名要吧），
    定义一个有参构造方法用来初始化学生姓名。学生类中定义一个成员方法，用来输出学生的信息。

    Main方法中，创建5个学生对象，每个学生执行输出学生信息的方法。
    学生的老师变更，
    再执行每个学生执行输出学生信息的方法。*/
        static void Main(string[] args)
        {
            string teacher = "唐僧";
            Teacher t = new Teacher(teacher);
            t.SayHello();

            for (int i = 1; i < 6; i++)
            {
                new Student("学生" + i + "号").SayHello(teacher);
            }

            teacher = "嫦娥";
            new Teacher(teacher);
            t.SayHello();

            for (int i = 1; i < 6; i++)
            {
                new Student("学生" + i + "号").SayHello(teacher);
            }

        }

    }

    class Student
    {
        private string teacher;
        private string name;
        public string Name { get => name; set => name = value; }
        public string Teacher { get => teacher; set => teacher = value; }
        public Student() { }
        public Student(string name)
        {
            Name = name;
        }

        public void SayHello(string teacher)
        {
            Console.WriteLine("my name is" + this.Name + ", My teacher is" + this.teacher);
        }

    }

    class Teacher
    {
        private string name;

        public Teacher() { }

        public string Name { get => name; set => name = value; }

        public Teacher(string name)
        {
            Name = name;
        }

        public void SayHello()
        {
            Console.WriteLine("Hey, my name is {0}, I am a teacher.", this.name);
        }

    }
}



